package com.java.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 客户端
 * 步骤：
 * 1.创建Socket对象，指明服务器地址和端口号；
 * 2.连接建立后，通过输出流向服务器端发送请求信息；
 * 3.通过输入流获取服务器响应的信息；
 * 4.关闭相关资源；
 * 
 * @author jinmingwu
 *
 */
public class ClientDemo {
	public static void main(String[] args) {
		try {
			//1.创建客户端Socket，指定服务器地址和端口号
			Socket socket = new Socket("localhost", 8888);

			//2.获取输出流，向服务器端发送信息
			OutputStream os = socket.getOutputStream();	//直接输出流
			PrintWriter pw = new PrintWriter(os);	//将输出流包装为打印流
			pw.write("用户名:Tom,密码:1234567");
			pw.flush();

			socket.shutdownOutput();//关闭输出流

			//3.获取输入流，读取服务器端的响应信息
			InputStream is = socket.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);

			String info = null;
			while((info = br.readLine()) != null) {
				System.out.println("接收到服务端的信息：" + info);
			}

			//4.关闭资源
			pw.close();
			os.close();

			is.close();
			isr.close();
			br.close();

			socket.close();

		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
